;--------------------------------
; Test file for 68000 assembler.
;
; snasm68.exe
;--------------------------------

; Help choices
;03:F052  D0 40  ADD.W   D0,D0                    A0=0003EF5C A1=0003F03C A2=00027946 A3=FFFFD1A4 A4=0003F5FA A5=00027000 A6=0000FF68 A7=00FFFE22 D0=00030001 D1=00000006 D2=0000C000 D3=67EF0023 D4=00000000 D5=0000FFFF D6=00000100 D7=00000000 xnzvc
;03:F054  D0 C0  ADDA.W  D0,A0                    A0=0003EF5C A1=0003F03C A2=00027946 A3=FFFFD1A4 A4=0003F5FA A5=00027000 A6=0000FF68 A7=00FFFE22 D0=00030002 D1=00000006 D2=0000C000 D3=67EF0023 D4=00000000 D5=0000FFFF D6=00000100 D7=00000000 xnzvc

;03:F056  30 10  MOVE.w  (A0),D0                  A0=0003EF5E A1=0003F03C A2=00027946 A3=FFFFD1A4 A4=0003F5FA A5=00027000 A6=0000FF68 A7=00FFFE22 D0=00030002 D1=00000006 D2=0000C000 D3=67EF0023 D4=00000000 D5=0000FFFF D6=00000100 D7=00000000 xnzvc
;03:F058  66 12  BNE     #$12 [03:F06C]           A0=0003EF5E A1=0003F03C A2=00027946 A3=FFFFD1A4 A4=0003F5FA A5=00027000 A6=0000FF68 A7=00FFFE22 D0=000307DB D1=00000006 D2=0000C000 D3=67EF0023 D4=00000000 D5=0000FFFF D6=00000100 D7=00000000 xnzvc

; ---------------------------------------------------------------------------------

; special-case: random choice
;03:F05A  54 88  ADDQ.L  #2,A0                    A0=0003EF60 A1=0003F03C A2=00027946 A3=FFFFD1A4 A4=0003F5FA A5=00027000 A6=0000FF68 A7=00FFFE22 D0=00030000 D1=00000006 D2=0000C000 D3=67EF0023 D4=00000000 D5=0000FFFF D6=00000100 D7=00000000 xnZvc
;03:F05C  30 10  MOVE.w  (A0),D0                  A0=0003EF62 A1=0003F03C A2=00027946 A3=FFFFD1A4 A4=0003F5FA A5=00027000 A6=0000FF68 A7=00FFFE22 D0=00030000 D1=00000006 D2=0000C000 D3=67EF0023 D4=00000000 D5=0000FFFF D6=00000100 D7=00000000 xnZvc
;03:F05E  D0 C0  ADDA.W  D0,A0                    A0=0003EF62 A1=0003F03C A2=00027946 A3=FFFFD1A4 A4=0003F5FA A5=00027000 A6=0000FF68 A7=00FFFE22 D0=0003021A D1=00000006 D2=0000C000 D3=67EF0023 D4=00000000 D5=0000FFFF D6=00000100 D7=00000000 xnzvc

; Table: 3F17C-3F18C
; Table: 3F340-3F350
;03:F060  4E B8  JSR     ($298A)                  A0=0003F17C A1=0003F03C A2=00027946 A3=FFFFD1A4 A4=0003F5FA A5=00027000 A6=0000FF68 A7=00FFFE22 D0=0003021A D1=00000006 D2=0000C000 D3=67EF0023 D4=00000000 D5=0000FFFF D6=00000100 D7=00000000 xnzvc
;03:F064  02 40  ANDI.W  #$000E,D0                A0=0003F17C A1=0003F03C A2=00027946 A3=FFFFD1A4 A4=0003F5FA A5=00027000 A6=0000FF68 A7=00FFFE22 D0=4B3725ED D1=00000006 D2=0000C000 D3=67EF0023 D4=00000000 D5=0000FFFF D6=00000100 D7=00000000 xnzvc
;03:F068  D0 C0  ADDA.W  D0,A0                    A0=0003F17C A1=0003F03C A2=00027946 A3=FFFFD1A4 A4=0003F5FA A5=00027000 A6=0000FF68 A7=00FFFE22 D0=4B37000C D1=00000006 D2=0000C000 D3=67EF0023 D4=00000000 D5=0000FFFF D6=00000100 D7=00000000 xnzvc

; reload offset ptr
;03:F06A  30 10  MOVE.w  (A0),D0                  A0=0003F188 A1=0003F03C A2=00027946 A3=FFFFD1A4 A4=0003F5FA A5=00027000 A6=0000FF68 A7=00FFFE22 D0=4B37000C D1=00000006 D2=0000C000 D3=67EF0023 D4=00000000 D5=0000FFFF D6=00000100 D7=00000000 xnzvc

; ---------------------------------------------------------------------------------

; offset PTR-16
;03:F06C  D0 C0  ADDA.W  D0,A0                    A0=0003EF5E A1=0003F03C A2=00027946 A3=FFFFD1A4 A4=0003F5FA A5=00027000 A6=0000FF68 A7=00FFFE22 D0=000307DB D1=00000006 D2=0000C000 D3=67EF0023 D4=00000000 D5=0000FFFF D6=00000100 D7=00000000 xnzvc
;03:F06E  28 48  MOVE.l  A0,A4                    A0=0003F739 A1=0003F03C A2=00027946 A3=FFFFD1A4 A4=0003F5FA A5=00027000 A6=0000FF68 A7=00FFFE22 D0=000307DB D1=00000006 D2=0000C000 D3=67EF0023 D4=00000000 D5=0000FFFF D6=00000100 D7=00000000 xnzvc
;03:F070  4E 75  RTS                              A0=0003F739 A1=0003F03C A2=00027946 A3=FFFFD1A4 A4=0003F739 A5=00027000 A6=0000FF68 A7=00FFFE22 D0=000307DB D1=00000006 D2=0000C000 D3=67EF0023 D4=00000000 D5=0000FFFF D6=00000100 D7=00000000 xnzvc

; ===================================================================
; ===================================================================
; ===================================================================

; Purpose:
; - Remap to 32-bit pointers

	org $2f0200

start:
	jmp PTR9A_1
	jmp PTR9A_2

; ===================================================================
; ===================================================================

PTR9A_1:
	andi.w #$000e,d0		; OLD code

	cmpa.l #$3f17c,a0		; table toggle
	bne PTR9A_TABLE2
	
PTR9A_TABLE1:
	move.l #$204800,a0		; random help #1
	bra PTR9A_END

PTR9A_TABLE2:
	move.l #$205000,a0		; random help #2
	bra PTR9A_END

; ===================================================================
; ===================================================================

PTR9A_2:
	jsr $11842			; Reload index #
	asl.w #4,d0			; 64 -> 128-bit table

	movea.l #$204000,a0		; normal help (REMAP)
	adda.w d0,a0

	move.b ($d1a4).w,d0		; choice #1/2
	add.w d0,d0

; ===================================================================
; ===================================================================

PTR9A_END:
	mulu.w #2,d0			; 16 -> 32-bit ptr
	movea.l 0(a0,d0),a0		; 32-bit pointer table

	movea.l a0,a4			; OLD code
	rts
